/* * Vide - v0.1.4 * Easy as hell jQuery plugin for video backgrounds. * http://vodkabears.github.io/vide/ * * Made by Ilya Makarov * Under MIT License */ !function(a,b,c,d){"use strict";function e(b,c,d){if(this.element=a(b),this._defaults=g,this._name=f,"string"==typeof c&&(c=j(c)),d?"string"==typeof d&&(d=j(d)):d={},"string"==typeof c)c=c.replace(/\.\w*$/,"");else if("object"==typeof c)for(var e in c)c.hasOwnProperty(e)&&(c[e]=c[e].replace(/\.\w*$/,""));this.settings=a.extend({},g,d),this.path=c,this.init()}var f="vide",g={volume:1,playbackRate:1,muted:!0,loop:!0,autoplay:!0,position:"50% 50%",posterType:"detect"},h=/iPad|iPhone|iPod/i.test(d.userAgent),i=/Android/i.test(d.userAgent);a[f]={lookup:[]};var j=function(a){var b,c={};b=a.replace(/\s*:\s*/g,":").replace(/\s*,\s*/g,",").split(",");var d,e,f,g,h,i;for(d=0,e=b.length;e>d&&(i=b[d],-1===i.search(/^(http|https|ftp):\/\//)&&-1!==i.search(":"));d++)h=i.indexOf(":"),f=i.substring(0,h),g=i.substring(h+1),g||(g=void 0),"string"==typeof g&&(g="true"===g||("false"===g?!1:g)),"string"==typeof g&&(g=isNaN(g)?g:+g),c[f]=g;return null==f&&null==g?a:c},k=function(a){a=""+a;for(var b,c=a.split(/\s+/),d="50%",e="50%",f=0,g=c.length;g>f;f++)b=c[f],"left"===b?d="0%":"right"===b?d="100%":"top"===b?e="0%":"bottom"===b?e="100%":"center"===b?0===f?d="50%":e="50%":0===f?d=b:e=b;return{x:d,y:e}},l=function(b,c){var d=function(){c(this.src)};a("").load(d),a("").load(d),a("").load(d),a("").load(d)};e.prototype.init=function(){var b=this;this.wrapper=a("
");var c=k(this.settings.position);this.wrapper.css({position:"absolute","z-index":-1,top:0,left:0,bottom:0,right:0,overflow:"hidden","-webkit-background-size":"cover","-moz-background-size":"cover","-o-background-size":"cover","background-size":"cover","background-repeat":"no-repeat","background-position":c.x+" "+c.y});var d=this.path;if("object"==typeof this.path&&(this.path.poster?d=this.path.poster:this.path.mp4?d=this.path.mp4:this.path.webm?d=this.path.webm:this.path.ogv&&(d=this.path.ogv)),"detect"===this.settings.posterType?l(d,function(a){b.wrapper.css("background-image","url("+a+")")}):"none"!==this.settings.posterType&&this.wrapper.css("background-image","url("+d+"."+this.settings.posterType+")"),"static"===this.element.css("position")&&this.element.css("position","relative"),this.element.prepend(this.wrapper),!h&&!i){if("object"==typeof this.path){var e="";this.path.mp4&&(e+=""),this.path.webm&&(e+=""),this.path.ogv&&(e+=""),this.video=a("")}else this.video=a("");this.video.css("visibility","hidden"),this.video.prop({autoplay:this.settings.autoplay,loop:this.settings.loop,volume:this.settings.volume,muted:this.settings.muted,playbackRate:this.settings.playbackRate}),this.wrapper.append(this.video),this.video.css({margin:"auto",position:"absolute","z-index":-1,top:c.y,left:c.x,"-webkit-transform":"translate(-"+c.x+", -"+c.y+")","-ms-transform":"translate(-"+c.x+", -"+c.y+")",transform:"translate(-"+c.x+", -"+c.y+")"}),this.video.bind("loadedmetadata."+f,function(){b.video.css("visibility","visible"),b.resize()}),a(this.element).bind("resize."+f,function(){b.resize()})}},e.prototype.getVideoObject=function(){return this.video?this.video[0]:null},e.prototype.resize=function(){if(this.video){var a=this.video[0].videoHeight,b=this.video[0].videoWidth,c=this.wrapper.height(),d=this.wrapper.width();this.video.css(d/b>c/a?{width:d+2,height:"auto"}:{width:"auto",height:c+2})}},e.prototype.destroy=function(){this.element.unbind(f),this.video&&this.video.unbind(f),delete a[f].lookup[this.index],this.element.removeData(f),this.wrapper.remove()},a.fn[f]=function(b,c){var d;return this.each(function(){d=a.data(this,f),d&&d.destroy(),d=new e(this,b,c),d.index=a[f].lookup.push(d)-1,a.data(this,f,d)}),this},a(c).ready(function(){a(b).bind("resize."+f,function(){for(var b,c=a[f].lookup.length,d=0;c>d;d++)b=a[f].lookup[d],b&&b.resize()}),a(c).find("[data-"+f+"-bg]").each(function(b,c){var d=a(c),e=d.data(f+"-options"),g=d.data(f+"-bg");d[f](g,e)})})}(window.jQuery,window,document,navigator);